package com.oocl.euc.core.maintenance.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;


@Entity
@Table(name = "PCRS_USERS")
@SequenceGenerator(name = "SEQUENCE_GENERATOR", sequenceName = "USER_SEQUENCE", allocationSize = 1)
@JsonIgnoreProperties(value = {"handler", "hibernateLazyInitializer", "fieldHandler"})
public class Users implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "STAFF_ID", length = 20)
    private String staffId;

    @Column(name = "DOMAIN_ID", length = 20)
    private String domainId;

    @Column(name = "DISPLAY_NAME", length = 128)
    private String displayName;

    @Column(name = "GENDER", length = 6)
    private String gender;

    @Column(name = "EMAIL", length = 60)
    private String email;

    @Column(name = "JOB_TITLE", length = 128)
    private String jobTitle;

    @Column(name = "OFFICE", length = 20)
    private String office;

    @Column(name = "OFFICE_CODE", length = 22)
    private String officeCode;

    @Column(name = "PHONE", length = 128)
    private String phone;

    @Column(name = "FAX", length = 100)
    private String fax;

    @Column(name = "COUNTRY", length = 20)
    private String country;

    @Column(name = "DEPARTMENT", length = 20)
    private String department;

    @Column(name = "SECTION1", length = 50)
    private String section1;

    @Column(name = "SECTION2", length = 50)
    private String section2;

    @Column(name = "ADDRESS", length = 600)
    private String address;

    @Column(name = "LOCATION", length = 50)
    private String location;

    @Column(name = "FIRST_NAME", length = 40)
    private String firstName;

    @Column(name = "MIDDLE_NAME", length = 40)
    private String middleName;

    @Column(name = "LAST_NAME", length = 40)
    private String lastName;

    @Column(name = "ACTIVE", columnDefinition = "int default 1", nullable = false)
    private boolean active;

    @Column(name = "CREATED_AT", insertable = true, updatable = false)
    private Date createdAt;

    @Column(name = "UPDATED_AT")
    private Date updatedAt;

    @Column(name = "NEED_SYNC")
    private Boolean needSync;

    public String getStaffId() {
        return staffId;
    }

    public void setStaffId(String staffId) {
        this.staffId = staffId;
    }

    public String getDomainId() {
        return domainId;
    }

    public void setDomainId(String domainId) {
        this.domainId = domainId;
    }

    public String getDisplayName() {
        return displayName;
    }

    public void setDisplayName(String displayName) {
        this.displayName = displayName;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getJobTitle() {
        return jobTitle;
    }

    public void setJobTitle(String jobTitle) {
        this.jobTitle = jobTitle;
    }

    public String getOffice() {
        return office;
    }

    public void setOffice(String office) {
        this.office = office;
    }

    public String getOfficeCode() {
        return officeCode;
    }

    public void setOfficeCode(String officeCode) {
        this.officeCode = officeCode;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getFax() {
        return fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getSection1() {
        return section1;
    }

    public void setSection1(String section1) {
        this.section1 = section1;
    }

    public String getSection2() {
        return section2;
    }

    public void setSection2(String section2) {
        this.section2 = section2;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getMiddleName() {
        return middleName;
    }

    public void setMiddleName(String middleName) {
        this.middleName = middleName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public boolean isActive() {
        return active;
    }

    public void setActive(boolean active) {
        this.active = active;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public Boolean getNeedSync() {
        return needSync;
    }

    public void setNeedSync(Boolean needSync) {
        this.needSync = needSync;
    }
}
